本地模块
Node.js提供工具npm
工具构建本地模块 , 例如C/C++扩展 .
版本0.14以及之后版本 , 可以使用node-gyp或者npm构建本地模块 .
Linux以及OSX系统能够直接加载本地模块 . Windows系统中 , 需要将文件%APPDATA%\npm\node_modules\node-gyp\src\win_delay_load_hook.c替换为https://github.com/nwjs/nw.js/blob/nw13/tools/win_delay_load_hook.c
版本0.13之前 , V8引擎以及NW.js中的Node APIs不同于官方的Node.js . NW.js使用本地Node.js模块需要使用以下工具重新构建 . 版本0.15开始 , 使用以下工具还需要V8引擎中ABI变化 .
nw-gyp
nw-gyp
支持NW.js指定头文件以及库 .
功能与node-gyp
工具相同 , 除了需要手动指定版本以及支持位数 .
npm install -g nw-gyp
cd myaddon
nw-gyp rebuild --target=0.13.0 --arch=x64
参考https://github.com/nwjs/nw-gyp .
node-pre-gyp
部分包使用node-pre-gyp支持通过使用node-gyp
或者nw-gyp
构建Node.js和NW.js .
The usage of node-pre-gyp
is as following:
npm install -g node-pre-gyp
cd myaddon
node-pre-gyp build --runtime=node-webkit --target=0.13.0 --target_arch=x64
参考https://github.com/mapbox/node-pre-gyp
已知问题
目前 , 本地模块需要使用以上工具重新构建 , 包括依赖的模块 . 构建本地模块过程中 , 可以使用building.gyp
查找到所有本地模块 .